Wireless communication systems are widely deployed to provide various types of communications such as voice and data. One such system is wide band code division multiple access (WCDMA), which has been adopted in various competing wireless communication standards, e.g. third generation partnership project 3GPP, 3GPP project 2 (3GPP2) and long term evolution 3GPP (LTE 3GPP).
To overcome data corruption that can occur during RF transmission, the different wireless communication standards typically include some form of channel coding, where one common channel coding technique is turbo coding.
Turbo coding involves the use of a turbo encoder for encoding a code segment (i.e. a data packet) and a turbo decoder for the decoding of the encoded code segment. A turbo encoder typically includes a pair of convolutional encoders, one of which receives information bits (i.e. systematic bits) while the other convolutional encoder receives interleaved information bits. The information bits are shuffled (interleaved) in accordance with a specified interleaving scheme. The pair of convolutional encoders output two sequences of parity bits that are modulated and transmitted to a receiver. The systematic bits are also modulated and transmitted to the receiver.
FIG. 1 illustrates prior art turbo decoder 100. Turbo decoding is performed by an iterative process in which so called extrinsic information elements are exchanged between sub-blocks (also referred to as a processing units) 120 of turbo decoder 100. Extrinsic information elements are stored in multiple memory banks 110 and form a block of a certain size (K). Memory banks 110 are connected to processing units 120 via interconnect 130. Each processing unit can apply a soft input soft output algorithm. In order to utilize multiple sub-blocks 120 in an efficient manner the processing units 120 should operate in a parallel contention free manner.
Various single access contention free interleavers were developed. A single access contention free interleaver can prevent contentions if each processing unit fetches, during a single fetch cycle, a single extrinsic information unit. 3GPP LTE interleavers applies the following interleaving function: phi(x)=(f1*x+f2*x2)modulo(K), whereas f1 and f2 are set in response to the value of K.
Single access contention free interleavers limit the access of each processing unit to a certain sub-set of the block. Thus, if there are N processing units, each one can access a single K/N sub-set of information elements. During each access.
The throughput of a turbo decoder can be increased by adding more processing units (increasing N). This solution it is costly as it involves adding processing units. In addition, the quality of the turbo decoding process decreases when the size of the K/N sub-set of information elements decreases.
There is a growing need to provide turbo decoders that are characterized by a high parallelism and enhanced performance.